axios.defaults.baseURL="http://localhost:9090"//统一设置axios的前缀
Vue.prototype.$http=axios;

function urlParseParam(){
    let url=location.href;//http://localhost/list.html?typeId=27&keyVale=xxx
    console.log(url," xxxxxxxxxx")
    let paramStr=url.split("?")[1];
    let obj={};
    if (paramStr){
        let paramArray=paramStr.split("&");
        for (let i=0;i<paramArray.length;i++){
            let arr= paramArray[i].split("=");
            let key=arr[0];
            let value=arr[1];
            //当要动态获取某个对象属性名时用[]
            obj[key]=value;//this.query.keyValue

        }
    }
    return obj;
}

//判断是否登录过，如果没有登录则跳至主页
let releaseUrl=["index.html","exam.html","wymc.html","callback.html","binder.html"]//可以放行的页面
let url=location.href;//拿到当前页面
//判断当前页面在不在要放行的页面中
let isRun=false;//是否放行
//如果isRun为false并且以/结尾说明访问首页需要放行

if (url.endsWith("/")){
    isRun=true;
}else {
    for (let i=0;i<releaseUrl.length;i++){
        if (url.indexOf(releaseUrl[i])>-1){
            isRun=true;
            break;
        }
    }
}

if (!isRun){
    let loginInfo=localStorage.getItem("loginInfo")
    if (!loginInfo){
        //用户未登录，跳转至首页
        alert("当前连接需要登录，请登录后访问")
        location.href="/index.html";
    }
}

// axios前置拦截器:添加请求拦截器，在请求头中加token
// 前端调用后端接口都是通过axios发起请求的，所以在axios调用后端接口之前都会经过axios前置拦截器
// 在访问后端之前会先经过改拦截器，并在拦截器里，给每个请求添加请求头
axios.interceptors.request.use(
    config => {
        // 从localStorage中获取token
        let token = localStorage.getItem("token");

        // 如果token有值,我们就放到请求头里面
        if (token) {
            config.headers["token"] = token;
        }
        return config
    },
    error => {
        return Promise.reject(error)
    })
//响应拦截器，axios的后置拦截器,拦截到后端返回前端的结果是否因为未登录返回
axios.interceptors.response.use(config=>{
    console.log("========")
    let data = config.data;
    //==只判断值不判断类型 ===既判断值又判断类型
    if(!data.success && (400014===data.code)||(400015===data.code))
    {
        localStorage.removeItem("token");
        localStorage.removeItem("loginInfo");
        alert(data.message)
        location.href="/index.html"
        return ;
        // router.push({ path: '/index.html' });
    }
    console.log("========")
    return config;
},error => {
    Promise.reject(error)
})